WSL 2.0中使用networkingMode=mirrored,解决docker转发和外部设备访问问题 |
您所在的位置:网站首页 › docker 设置网络后 本地访问不通 › WSL 2.0中使用networkingMode=mirrored,解决docker转发和外部设备访问问题 |
运行以下命令将wsl2升级到2.0以上,或者通过github下载
wsl --update --pre-release
在win11的C:\Users\xxx目录下新建.wslconfig文件(xxx根据自己的用户名确定),写入如下内容:
# Settings apply across all Linux distros running on WSL 2
[wsl2]
networkingMode=mirrored # 开启镜像网络
dnsTunneling=true # 开启 DNS Tunneling
firewall=true # 开启 Windows 防火墙
autoProxy=true # 开启自动同步代理
[experimental]
hostAddressLoopback=true
其中hostAddressLoopback 目前处于开发阶段,其作用是:默认情况下,loopback的只有127.0.0.1(i.e., localhost),并且强制loopback。也就是说,在wsl2中开启的网络端口(例如通过8022开启ssh登录端口),会通过localhost映射到win11上,可以在win11宿主机使用ssh -p 8022 username@localhost登录,但是通过win11的局域网或公网IP是不能登录的。将这个选项设置为true之后,就可以在宿主机使用局域网或公网IP通过8022端口直接进行wsl2的ssh登录。 外部设备访问问题然而,遇到的一个问题是,在同一个局域网下,通过另一台设备ssh到win11的8022端口却不能登录wsl2中运行的Linux。这是因为Hypler-V默认的防火墙阻挡了访问。通过设置Hyper-V防火墙可以解决:使用 WSL 访问网络应用程序 | Microsoft Learn,具体操作如下: 使用管理员权限在 PowerShell 窗口中运行以下命令,以配置Hyper-V防火墙设置,从而允许入站连接: Set-NetFirewallHyperVVMSetting -Name ‘{40E0AC32-46A5-438A-A0B2-2B479E8F2E90}’ -DefaultInboundAction Allow 官网解决方法案例 临时解决docker转发解决方案 使用镜像模式后,创建docker容器后,docker run -d -p 8080:80 nginx,通过localhost:8080无法访问 修改**/etc/docker/daemon.json** { "iptables": false } |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |